package com.sec.dao.mysql;

import com.sec.util.Pager;
import org.hibernate.Session;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 *
 * Created by wx on 2017/10/4.
 */
public interface BaseDao<T> {

    /**
     * 获取session
     * */
    Session getSession();

    /**
     * 保存
     * */
    void save(T entity);

    /**
     * 删除
     * */
    void delete(T entity);

    /**
     * 更新
     * */
    void update(T entity);

    /**
     * 根据主键查询
     * */
    T queryById(Serializable id);

    /**
     * 获取所有数据
     * */
    List<T> queryAll();

    /**
     * 通过hql查询
     * @param queryString hql语句
     * @param values 参数
     * */
    List<T> queryListByHql(String queryString, Object... values);

    /**
     * 通过对象查询
     * */
    List<T> queryByCon(T entity);


    // 分页查询
    Pager pagerff(Pager p, Map<String, Object> pram);
}
